package com.fjwt.gz.service.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fjwt.gz.db.dto.MchInfoDTO;
import com.fjwt.gz.db.entity.MchInfoEntity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fjwt.gz.db.dto.PointDTO;
import com.fjwt.gz.db.vo.MchInfoVO;
import com.fjwt.gz.db.vo.NearMchListVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 商户信息表 Mapper 接口
 * </p>
 *
 * @author shiyonghao
 * @since 2025-04-09
 */
public interface MchInfoMapper extends BaseMapper<MchInfoEntity> {

    /**
     * 获取商户列表
     * @param iPage
     * @param mchInfo
     * @return
     */
    IPage<MchInfoVO> getMchList(IPage iPage, @Param("mchInfo") MchInfoDTO mchInfo);

    /**
     * 根据商户号查询商户信息
     * @param mchNo 商户号
     * @return
     */
    List<MchInfoVO> getMchInfo(@Param("mchNo") String mchNo);

    /**获取用户的周围的商户列表**/
    IPage<NearMchListVo> getNearMchList(IPage<?> page, @Param("location") PointDTO location, @Param("radius") String radius, @Param("couponId")  Long couponId);

    /**
     * 添加商户信息
     * @param mchInfo
     * @return
     */
    int addMchInfo(@Param("mchInfo") MchInfoEntity mchInfo);

    /**
     * 修改商户信息
     * @param mchInfo
     * @return
     */
    int updateMchInfoById(@Param("mchInfo") MchInfoEntity mchInfo);

    /**
     * 商户信息详情
     * @param mchNo
     * @return
     */
    MchInfoEntity mchInfo(String mchNo);

    /**
     * 商户信息批量插入
     * @param newMchInfoList
     */
    void batchInsert(@Param("newMchInfoList") List<MchInfoEntity> newMchInfoList);

    /**
     * 查询已存在商户号集合
     *
     */
    List<String> getMchNoList();

    int updateProcessMch(@Param("upmchInfo") MchInfoEntity upmchInfo,@Param("location")PointDTO location);

}
